home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 1 / QRZ Ham Radio Callsign Database - December 1993.iso / ucsd / packet / tcpip / amiga / asrc29k.lha / proc.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-08  |  2.1 KB  |  68 lines

  1. #ifndef    PHASH
  2.  
  3. #include <setjmp.h>
  4. #include "timer.h"
  5.  
  6. #define    OUTBUFSIZE    512    /* Size to be malloc'ed for outbuf */
  7.  
  8. /* Kernel process control block */
  9. #define    PHASH    17        /* Number of wait table hash chains */
  10. struct proc {
  11.     struct proc *prev;    /* Process table pointers */
  12.     struct proc *next;    
  13.  
  14.     jmp_buf env;        /* Process state */
  15.     char i_state;        /* Process interrupt state */
  16.  
  17.     unsigned short state;
  18. #define    READY    0
  19. #define    WAITING    1
  20. #define    SUSPEND    2
  21.     void *event;        /* Wait event */
  22.     int16 *stack;        /* Process stack */
  23.     unsigned stksize;    /* Size of same */
  24.     char *name;        /* Arbitrary user-assigned name */
  25.     int retval;        /* Return value from next pwait() */
  26.     struct timer alarm;    /* Alarm clock timer */
  27.     struct mbuf *outbuf;    /* Terminal output buffer */
  28.     int input;        /* standard input socket */
  29.     int output;        /* standard output socket */
  30. };
  31. #define NULLPROC (struct proc *)0
  32. extern struct proc *Waittab[];    /* Head of wait list */
  33. extern struct proc *Rdytab;    /* Head of ready list */
  34. extern struct proc *Curproc;    /* Currently running process */
  35. extern struct proc *Susptab;    /* Suspended processes */
  36. extern int Stkchk;        /* Stack checking flag */
  37.  
  38. /* In  kernel.c: */
  39. void alert __ARGS((struct proc *pp,int val));
  40. void chname __ARGS((struct proc *pp,char *newname));
  41. void killproc __ARGS((struct proc *pp));
  42. void killself __ARGS((void));
  43. struct proc *mainproc __ARGS((char *name));
  44. struct proc *newproc __ARGS((char *name,unsigned int stksize,
  45.     void (*pc) __ARGS((int,void *,void *)),
  46.     int iarg,void *parg1,void *parg2));
  47. int psignal __ARGS((void *event,int n));
  48. int pwait __ARGS((void *event));
  49. void resume __ARGS((struct proc *pp));
  50. void suspend __ARGS((struct proc *pp));
  51.  
  52. /* In ksubr.c: */
  53. void chkstk __ARGS((void));
  54. void kinit __ARGS((void));
  55. void psetup __ARGS((struct proc *pp,int iarg,void *parg1,void *parg2,
  56.     void  __ARGS(((*pc) __ARGS((int,void *,void *)) )) ));
  57. #ifdef    AMIGA
  58. void init_psetup __ARGS((struct proc *pp));
  59. #endif
  60.  
  61. /* Stack background fill value for high water mark checking */
  62. #define    STACKPAT    0x55aa
  63.  
  64. /* Value stashed in location 0 to detect null pointer dereferences */
  65. #define    NULLPAT        0xdead
  66.  
  67. #endif    /* PHASH */
  68.